必知必会 | 拒绝知识盲点 测试相关的方方面面都在这儿
很多时候,由于迭代周期有限,开发任务多、时间紧,导致很多产品基本没有单元测试,从而也导致很多同学这块都是盲区。
其实我对测试接触也非常少,所以深度方面是很难做到了,大家作为扫盲文对待即可,当然我相信只要能够初步的了解相关文章,大家都有再以此深入学习下去的能力。
此文主要是因为唯鹿之前给我投递了几篇单元测试的文章,我去他博客目录看了下,可以说其实是一个系列的文章,单篇很难进行推送。故以此为起点,给大家做一个一整套的测试相关的文章整理。
文章带引用的部分,为从最近一篇文章中的引用内容。资源可能会已经过期,想注意鉴别。
以后该方面文章都叫必知必会系列了,历史该系列:
这个应该是最常见的,往往不做单元测试,但是压力测试还是会做的。多数都是使用Monkey,不是很复杂,推荐一篇不错的文章:
Android Monkey 压力测试
http://dwz.cn/7CubU8
当然了,万事开头难,然后中艰难,最后结果难。开头很关键,这里还推荐个免费的视频教程:
http://www.imooc.com/learn/729
到这儿应该能搞定压力测试了。
现在终于到单元测试了,首先推荐一篇:
Android单元测试 - 如何开始?
https://www.jianshu.com/p/bc99678b1d6e
作者推荐最好从Junit、Mockito开始入门。
对于Junit的好文:
Android单元测试(一):JUnit框架的使用
http://blog.csdn.net/qq_17766199/article/details/78243176
介绍了基础用法、参数化测试、assertThat用法、Rule用法等。
附带几篇:
Android单元测试之JUnit框架
https://maxwell-nc.github.io/android/junitTest.html
Android单元测试(三):JUnit单元测试框架的使用
http://chriszou.com/2016/04/18/android-unit-testing-junit.html
再继续学习之前,不妨先看下:
Android单元测试 - 几个重要问题
https://www.jianshu.com/p/f5d197a4d83a
了解下各种依赖问题如何面对。
然后开始Mockito:
Android单元测试(二):Mockito框架的使用
http://blog.csdn.net/qq_17766199/article/details/78450007
作者的话写的很好:在实际的单元测试中,我们测试的类之间会有或多或少的耦合,导致我们无法顺利的进行测试,这时我们就可以使用Mockito,Mockito库能够Mock(我喜欢理解为模拟)对象,替换我们原先依赖的真实对象,这样我们就可以避免外部的影响,只测试本类,得到更准确的结果。
Android单元测试之Mockito框架
https://maxwell-nc.github.io/android/mockitoTest.html
Android 单元测试 Mockito使用详解
http://blog.csdn.net/mq2553299/article/details/77014651
Android单元测试(四):Mock以及Mockito的使用
http://chriszou.com/2016/04/29/android-unit-testing-mockito.html
以及Mockito框架中文文档(早期Simple组织翻译):
https://github.com/hehonghui/mockito-doc-zh
PowerMock ,它拓展了Mockito框架,从而支持了mock static方法、private方法、final方法与类等等。
Android单元测试(三):PowerMock框架的使用
http://blog.csdn.net/qq_17766199/article/details/78573390
Android单元测试之PowerMockito
https://www.jianshu.com/p/6631bd826677
Android最佳Mock单元测试方案:Junit + Mockito + Powermock
http://www.snowdream.tech/2016/08/03/android-mock-test/
Android单元测试(一)
https://www.jianshu.com/p/0a8bbfe6cba2
开发工具提供了我们开发和编译的JVM环境,要运行app需要Dalvik或ART环境。而单元测试的是一个运行过程,我们没有相应的环境,所以运行依赖android.jar包的方法时将会抛出RuntimeException("stub!")。那么怎么办呢?使用Robolectric可以解决此类问题,它通过实现一套JVM能运行的Android代码,从而做到脱离Android运行环境进行测试。
Android单元测试(四):Robolectric框架的使用
http://blog.csdn.net/qq_17766199/article/details/78710177
Android 单元测试--Robolectric
https://www.diycode.cc/topics/377
Android单元测试(七):Robolectric,在JVM上调用安卓的类
http://chriszou.com/2016/06/05/robolectric-android-on-jvm.html
Android单元测试之Robolectric框架
https://maxwell-nc.github.io/android/robolectricTest.html
Android单元测试研究与实践-美团
https://tech.meituan.com/Android_unit_test.html
本文介绍了如何利用JaCoCo生成单元测试及覆盖率报告并在Jenkins显示测试报告结果。
Android单元测试(三)
https://www.jianshu.com/p/ce6697f8434e
Android增量代码测试覆盖率工具-美团
https://tech.meituan.com/android-jacoco-practace.html
Espresso最强大的功能就是UI自动化测试,这是其他单元测试框架达不到的,我们可以让Espresso处理它拿手的UI界面测试,而网络请求等业务处理,我们可以交给其他测试框架去处理,比如Mockito(后文再讲)。
Espresso入门
http://shiyuanjie.cn/2016/11/23/Espresso%E5%85%A5%E9%97%A8/
Android使用Espresso进行UI自动化测试
https://juejin.im/post/5a30e0996fb9a045211eb341
Android自动化测试--Espresso框架使用
http://blog.csdn.net/qq_17766199/article/details/79183901
Android 自动化测试 Espresso篇:简介&基础使用
http://blog.csdn.net/mq2553299/article/details/74067002
Android 自动化测试 Espresso篇:异步代码测试
http://blog.csdn.net/mq2553299/article/details/74490718
官方文档:
https://developer.android.com/training/testing/ui-testing/espresso-testing.html
RxJava,MVP,Dagger这些库我们用的越来越多,那么如何更加方便的对这些进行测试呢?
Android单元测试(五):网络接口测试
http://blog.csdn.net/qq_17766199/article/details/78881992
Android单元测试(六):RxJava测试
http://blog.csdn.net/qq_17766199/article/details/78989664
Android单元测试(七):MVP与单元测试
http://blog.csdn.net/qq_17766199/article/details/79183901
Android单元测试(八):Dagger与单元测试
http://blog.csdn.net/qq_17766199/article/details/79277483
微信中不支持外链,更好的体验可以点击阅读原文访问,以上所有文章会同步到wanandroid。
感谢所有作者,如果有任何建议或者补充欢迎留言,会后续更新到原文中。
如果你想要跟大家分享你的文章,欢迎投稿~